package cn.zyq.charging.order.config;

import org.hibernate.validator.HibernateValidator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;

import javax.validation.Validation;

//@Configuration和@Component的区别：
//@Component表示此类是一个spring组件。
//@Configuration表示此类是一个配置类，可以通过@Configuration注解底层就包含了@Component

/**配置springValidation框架的快速失败功能：*/
//当多个参数都要验证，如果一个参数验证失败则其他参数就不做验证了
@Configuration
public class ValidationConfiguration {
    @Bean//@Bean表示此方法会返回一个bean对象交给spring容器去管理
    public javax.validation.Validator validator() {
        return Validation
                .byProvider(HibernateValidator.class)
                .configure()
                .failFast(true)//快速失败为true,一个检查不通过,就返回,不会继续检查
                .buildValidatorFactory()
                .getValidator();
    }
}